package com.xq.transaction;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.Response;
import redis.clients.jedis.Transaction;

/**
 * @author xq
 * @version 1.0
 * @date 2021/4/28 11:29
 * @description 测试redis的事务 未加锁
 */
public class TestRedisTransactionNoLock {
    public static void main(String[] args) {
        // 创建连接
        Jedis jedis = new Jedis("192.168.2.120", 6379);
        // 设置密码，有密码设置，所有服务器都没设置
        //jedis.auth("123456");
        // 对key进行监控，如果这个key被改动了，就放弃事务
        /**
         jedis.watch("tran_key");
         // 添加一个string类型的key
         jedis.set("tran_key","hello");
         // 取消监控
         jedis.unwatch(); **/

        // 开启事务
        Transaction multi = jedis.multi();
        Response<String> response = multi.get("tran_key");
        multi.set("tran_key","hello2");
        multi.lpush("tran_list","11","22");
        // 执行事务
        multi.exec();
        // 取消事务
        // multi.discard();
        System.out.println("tran_key："+jedis.get("tran_key"));
        jedis.close();
    }
}
